import * as publicjs from './public'
import * as datetool from '../public/tools/datetool'
// 获取所有的消息列表
export const getMsgViewList = state => {
  // console.log(JSON.parse(window.localStorage.getItem(state.currentLoginUser.username + 'user')))
  // state.messageList1 = JSON.parse(window.localStorage.getItem(state.currentLoginUser.username + 'user'))
  return publicjs.cloneObj(state.messageList1)
}
/* s=消息列表页面 */
// 消息列表用户所展示的信息
export const getMessageViewLastMsg = (state, getters) => {
  // 获取消息列表中的最后一条消息，最后一条消息的时间 用户id  克隆总共的消息列表
  // console.log(state.messageList1)
  let result = publicjs.cloneObj(state.messageList1) || []
  // eslint-disable-next-line
  let friends = state.friends
  // console.log(111)
  // console.log('获取最后一条消息的列表处理前的数据', result)
  if (result.length) {
    result.forEach(item => {
      if (item) {
        // 将朋友列表中的头像信息拿过来
        let tempF = friends.filter(f => f.jid === item['_id'])
        if (tempF.length && tempF[0].headicon) {
          item['headicon'] = tempF[0].headicon || ''
        } else {
          item['headicon'] = ''
        }
        // 初始化未读消息为0
        item['unreadnum'] = 0
        item.list.forEach(ii => {
          if (!ii.read) {
            item['unreadnum'] = Number(item['unreadnum']) + 1
          }
        })
        if (item.list.length > 1) {
          let tempitem = item.list[item.list.length - 1]
          item.lastmsg = tempitem
        } else {
          item.lastmsg = item.list[0]
        }
        // console.log(item.lastmsg)
        if (item.lastmsg.msg.indexOf('img') !== -1 && item.lastmsg.self) {
          item.lastmsg.msg = '表情信息'
        } else if (item.lastmsg.msg.indexOf('img') !== -1 && !item.lastmsg.self) {
          item.lastmsg.msg = '收到一条表情信息'
        }
        delete item.list
        item.lastmsg.time = datetool.timeDesc(item.lastmsg.time)
      }
    })
    console.log('处理后的消息列表', result)
    // window.localStorage.setItem(state.currentLoginUser.username + 'user', JSON.stringify(result))
  }
  // console.log(state.messageList)
  return result
}
// 消息列表页面  Header 页面的显示环信未读消息数
export const getTotalUnreadNum = (state, getters) => {
  const result = getters.getMessageViewLastMsg
  let count = 0
  if (result.length) {
    result.forEach(item => {
      if (item) {
        count += item.unreadnum
      }
    })
  }
  return count
}
// 底部导航栏未读消息总数
export const getTotalUnreadNumlg100 = (state, getters) => {
  let count = getters.getTotalUnreadNum
  // 如果未读消息大于100，就换成... 否则显示总的未读消息数
  if (count >= 10) {
    count = '...'
  }
  return count
}
/* e=消息列表页面 */

/* s=单人聊天页面 */
// 获取当前正在聊天的用户的所有信息渲染到chatview上面去
export const getCurrentUserChat = state => {
  console.log('当前正在聊天的用户的_id', state.currentChatUserId)
  // let result = {msg: '123'}
  // 获取所有的用户列表
  let messageList = state.messageList1
  let result = messageList.filter(item => {
    // console.log(item._id, state.currentChatUserId.id)
    if (item._id === state.currentChatUserId.id) {
      return item
    }
  })
  console.log(result, '当前正在聊天的用户')
  return publicjs.cloneObj(result[0])
}
// 用户在发送消息时，通过id查找当前用户的所有好友，找到当前聊天好友的用户名
export const getCurrentChatUsername = state => {
  console.log('当前登录用户的所有好友列表', state.currentChatUserId, state.friends)
  let id = state.currentChatUserId.id
  console.log(id, '-----------------')
  let tempItem = state.friends.filter(item => item.jid.indexOf(id) !== -1)
  console.log('当前聊天用户的用户名', tempItem[0])
  return tempItem[0]
}
// 获取当前聊天用户截取后的id
export const getCurrentUserChatSplitedId = state => {
  let idObj = publicjs.cloneObj(state.currentChatUserId)
  // console.log(JSON.parse(idObj.id))
  let id = idObj.id
  // console.log(typeof id)
  if (id) {
    let idarr = id.substr(id.indexOf('_') + 1).split('@')
    id = idarr[0]
  }
  return id
}
/* e=单人聊天页面 */

/* s=通讯录页面 */
// computeCurrentonPresenceFriendsPost获取接收到的好友请求的未读数，和未同意数同意
export const computeCurrentOPFriendsP = state => {
  if (state.onPresenceFriends.length) {
    let readNum = 0
    let agreeNum = 0
    // console.log(state.onPresenceFriends)
    state.onPresenceFriends.forEach(item => {
      // console.log(item)
      if (!item.read) {
        readNum++
      }
      if (!item.agree) {
        agreeNum++
      }
    })
    return {readNum: readNum, agreeNum: agreeNum}
  }
}
/* e=通讯录页面 */
/* s=群组页面 */
// 获取当前正在聊天的群组的消息列表
export const getCurrentGroupChat = state => {
  console.log('当前正在聊天的群组的对象', state.currentChatGroup)
  // 获取所有的用户列表
  let messageList = state.groupMessageList
  let result = messageList.filter(item => {
    // console.log(item._id, state.currentChatUserId.id)
    if (item.groupid === state.currentChatGroup.id) {
      return item
    }
  })
  console.log(result, '当前正在聊天的群组的消息列表')
  return publicjs.cloneObj(result[0])
}
/* e=群组页面 */
